package com.ll.method;

/**
 * @author 刘龙
 * @version 1.0
 */
public class ThreadMethod01 {
    public static void main(String[] args) throws InterruptedException {
        // 测试相关方法
        T t = new T();
        // 设置线程名称
        t.setName("神龙");
        // 设置优先级
        t.setPriority(Thread.MIN_PRIORITY);

        System.out.println(t.getName());
        // 启动子线程
        t.start();

        //主线程输出5个hi,然后中断子线程的休眠
        for (int i = 0; i < 5; i++) {
            Thread.sleep(1000);
            System.out.println("hi" + i);
        }

        System.out.println(t.getName() + "线程的优先级= " + t.getPriority());

        // 当执行到这里,就会中断t线程的休眠
        t.interrupt();
    }
}

class T extends Thread {
    @Override
    public void run() {
        while (true) {
            for (int i = 0; i < 10; i++) {
                // Thread.currentThread().getName() 获取当前线程的名称
                System.out.println(Thread.currentThread().getName() + "吃包子..." + i);
            }

            try {
                System.out.println(Thread.currentThread().getName() + "休眠中...");
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                // 当线程执行到一个interrupt方法时,就会catch一个异常,可以加入自己的业务代码
                // InterruptedException 是捕获到一个中断异常(不是中止)
                System.out.println(Thread.currentThread().getName() + "被 interrupt了");
            }
        }
    }
}
